#ifndef _GISUSSWFILEIMPL_HXX_
#define _GISUSSWFILEIMPL_HXX_

#include "mytypes.h"

class GisusSWFileImpl
{
public:

  GisusSWFileImpl(const char **swdata);
  GisusSWFileImpl(const GisusSWFileImpl &model);
  ~GisusSWFileImpl();

  tUInt32 Id() const { return _id; }
  const string &Filename() const { return _filename; }
  tUInt32 Size() const { return _size; }
  tUInt32 NbOfChunks() const { return _nbofchunks; }
  tByte *Signature() const { return _signature; }
  tUInt32 SigSize() const { return _sig_size; }
  tUInt32 Version() const { return _version; }
  tUInt32 GlobalVersion() const { return _globalversion; }
  const string &RDProductType() const { return _rdproducttype; }
  const string &ComProductType() const { return _comproducttype; }
  const string &ProductFamily() const { return _productfamily; }
  const string &ComRef() const { return _productcomref; }

private:
  bool ExtractData(const char **swdata);

  tUInt32 _id;
  string  _filename;
  tUInt32 _size;
  tUInt32 _nbofchunks;
  tByte  *_signature;
  tUInt32 _sig_size;
  tUInt32 _version;
  tUInt32 _globalversion;
  string _rdproducttype;
  string _comproducttype;
  string _productfamily;
  string _productcomref;
};

#endif // _GISUSWFILEIMPL_HXX_
